// 使用open write close的形式去创建一个大文件,
// 内容从指定的文本中随机取一些（每次取得长度内容可以不一样）,
// 计算出这个大文件出现最多的字符(要使用流的形式).
const { randomBytes } = require('crypto');
var fs = require('fs');
var str = "qwertyuiopasdfghjklzxcvbnm"

let fd = fs.openSync("demo.txt", "a");
for (let j = 0; j < 100; j++) {
    var str11 = sj(Math.ceil(Math.random()*str.length));
    fs.writeSync(fd, str11)
}
fs.closeSync(fd);



var rs = fs.createReadStream('demo.txt','utf-8')
var max = 0;
var char="";
var obj = {};
rs.on('data',function(chunk){
    
    for(var p=0;p<chunk.length;p++){
        if(obj[chunk[p]]){
            obj[chunk[p]]++
        }else{
            obj[chunk[p]]=1;
        }
    }
    for(var key in obj){
        if(max<obj[key]){
            max=obj[key];
            char=key;
        }
    }
    
})
rs.on('end', function () {
    console.log(char+"出现了最多次"+max+"次");
});


//num1 = 获取多少个
function sj(num1){
    var str1="";
    for(var x = 0;x<num1;x++){
        var xiabiao = Math.ceil(Math.random()*str.length)
        str1=str1+str[xiabiao];
    }
    return str1;
}


